Web applications can be composed of independent content such as portals which provide access points to information in the World Wide Web (web) or the like global network, mashups which are web pages or applications that have combined elements such as functionality and data from multiple sources to create new services. These web applications traditionally have statically defined page contents or can explicitly add dynamic content to a page. That is, the pages are predefined and content on each page could explicitly add a specific new portlet or widget in response to various actions. Briefly, a portlet is a pluggable user interface software component that is managed and displayed in a web portal. A widget is a small application that can be installed and executed within a web page. In an environment composed of independently developed content, standardized eventing frameworks can be used to pass data between portlets or widgets on the same page. Operating systems essentially behave the same way; users can explicitly load applications, and applications can explicitly load other applications in response to various actions. This is analogous to loading portlets on a portal page and having those portlets launch additional portlets. Operating systems generally behave like single-page portals.
In the Web Application or Operating System field of technology, there currently exists no ability to dynamically load content or applications, and pass data based on events, unless the new content or application is previously known and explicitly coded into the originating content or application.
For example, current Web applications either explicitly launch specific content by hard-coding the desired new contents, in which flexibility or mashup capabilities may be reduced, or construct pages with all content already present to enable eventing between the separate content, complicating layout and usability issues. Similarly, operating system applications either explicitly launch specific applications by hard-coding the new application, or have all relevant applications already loaded and listening for events, perhaps as just a widget or plugin that launches the full application, but nevertheless running constantly in the background.